-
Notifications
You must be signed in to change notification settings - Fork 51
feat(zksdk): improve type safety for fiat-shamir transformations #942
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
8250cf9 to
3f092e1
Compare
3f092e1 to
81fee7d
Compare
3e9bbe5 to
fdcc161
Compare
c364c5e to
573dd60
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
573dd60 to
bd20cc3
Compare
b3f6cfc to
055e47e
Compare
bd20cc3 to
d8b3db7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, do you know what is causing the conformance issues?
|
Yes, it has to do with core-bpf being enabled for the stake program in the test-vectors, seems we aren't correctly doing something in that area. Haven't looked into it further yet, think @kprotty was going to? |
d8b3db7 to
38cb0bd
Compare
yewman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
Implements EdDSA with the avx2/avx512 ed25519 implementations, resulting in a 2.8x speedup. The speedup is also in part to a slightly faster straus implementation than the one the zig stdlib uses, since it can be variable time + different radix setup. ``` +------------------+-------+-------+-------+----------+ | naiveBatchVerify | min | max | mean | std_dev | +==================+=======+=======+=======+==========+ | _ | 3719 | 5888 | 3863 | 186 | +------------------+-------+-------+-------+----------+ +----------------+-------+-------+-------+----------+ | stdBatchVerify | min | max | mean | std_dev | +================+=======+=======+=======+==========+ | _ | 1579 | 2510 | 1625 | 73 | +----------------+-------+-------+-------+----------+ +----------------+-------+-------+-------+----------+ | sigBatchVerify | min | max | mean | std_dev | +================+=======+=======+=======+==========+ | _ | 1315 | 2107 | 1349 | 45 | +----------------+-------+-------+-------+----------+ ``` Unfortunately it is not currently possible to fully batch transaction verification. Agave loops over transaction signatures and `verify_strict`s each one, in order to tighten down on the behaviour regarding low-order points. While this makes some sense, in reality it greatly reduces our ability to do sigverify fast, and doesn't really have any benefit to the protocol. Wish Solana could use something like ed25519-zebra instead.
yewman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!

No description provided.